978 research outputs found

    Practical Run-time Checking via Unobtrusive Property Caching

    Full text link
    The use of annotations, referred to as assertions or contracts, to describe program properties for which run-time tests are to be generated, has become frequent in dynamic programing languages. However, the frameworks proposed to support such run-time testing generally incur high time and/or space overheads over standard program execution. We present an approach for reducing this overhead that is based on the use of memoization to cache intermediate results of check evaluation, avoiding repeated checking of previously verified properties. Compared to approaches that reduce checking frequency, our proposal has the advantage of being exhaustive (i.e., all tests are checked at all points) while still being much more efficient than standard run-time checking. Compared to the limited previous work on memoization, it performs the task without requiring modifications to data structure representation or checking code. While the approach is general and system-independent, we present it for concreteness in the context of the Ciao run-time checking framework, which allows us to provide an operational semantics with checks and caching. We also report on a prototype implementation and provide some experimental results that support that using a relatively small cache leads to significant decreases in run-time checking overhead.Comment: 30 pages, 1 table, 170 figures; added appendix with plots; To appear in Theory and Practice of Logic Programming (TPLP), Proceedings of ICLP 201

    An Approach to Static Performance Guarantees for Programs with Run-time Checks

    Full text link
    Instrumenting programs for performing run-time checking of properties, such as regular shapes, is a common and useful technique that helps programmers detect incorrect program behaviors. This is specially true in dynamic languages such as Prolog. However, such run-time checks inevitably introduce run-time overhead (in execution time, memory, energy, etc.). Several approaches have been proposed for reducing such overhead, such as eliminating the checks that can statically be proved to always succeed, and/or optimizing the way in which the (remaining) checks are performed. However, there are cases in which it is not possible to remove all checks statically (e.g., open libraries which must check their interfaces, complex properties, unknown code, etc.) and in which, even after optimizations, these remaining checks still may introduce an unacceptable level of overhead. It is thus important for programmers to be able to determine the additional cost due to the run-time checks and compare it to some notion of admissible cost. The common practice used for estimating run-time checking overhead is profiling, which is not exhaustive by nature. Instead, we propose a method that uses static analysis to estimate such overhead, with the advantage that the estimations are functions parameterized by input data sizes. Unlike profiling, this approach can provide guarantees for all possible execution traces, and allows assessing how the overhead grows as the size of the input grows. Our method also extends an existing assertion verification framework to express "admissible" overheads, and statically and automatically checks whether the instrumented program conforms with such specifications. Finally, we present an experimental evaluation of our approach that suggests that our method is feasible and promising.Comment: 15 pages, 3 tables; submitted to ICLP'18, accepted as technical communicatio

    Seed pathology

    Get PDF
    Seeds provide an efficient method for disseminating pathogenic organisms to different locations; more than 50 percent of the major bean diseases are seed borne. Mechanical damage, which may occur during harvesting, threshing and/or planting can affect seed viability, germination, and result in contamination by microorganisms. Seed pathogens can be controlled with protectant fungicides that penetrate the seed coat but not the cotyledons. Systemic fungicides, which penetrate the seed coat and cotyledons, provide some degree of control. The date of harvest is very important in the production of high-quality, pathogen-free seed. Leaving plants for prolonged periods in the field after plant maturity increases the percentage of seed infection by fungi and decreases the percentage of seed germination. Various species of bacteria and viruses are seed borne, but no treatment controls them satisfactorily. The seed-borne and seed-contaminating organisms associated with dry beans are given in table form. Color illustrations are given. (AS)La semilla constituye un metodo eficiente de diseminacion de organismos fitopatogenos a diversas localidades; mas de 50 por ciento de las principales enfermedades del frijol son transmitidas por la semilla. El dano mecanico que ocurre durante la cosecha, trilla y/o siembra tambien puede afectar la viabilidad, la germinacion y resultar en contaminacion de la semilla por microorganismos. Los patogenos de la semilla se pueden controlar con fungicidas protectores que penetran en la testa de la semilla pero no en el interior de los cotiledones. Los fungicidas sistemicos, que penetran en la testa y en los cotiledones, brindan cierto grado de control. La fecha de cosecha es muy importante en la produccion de semilla de alta calidad, libre de agentes patogenos. Dejar las plantas en el campo por periodos prolongados despues de que han madurado hace que el porcentaje de infeccion por hongos aumente y que el porcentaje de germinacion de la semilla disminuya. Varias especies de bacterias y virus son portadas por la semilla, pero ningun tratamiento las controla satisfactoriamente. Se presentan en forma de cuadro los organismos portados por las semillas y contaminantes de ellas asociados con el frijol. Se presentan ilustraciones a color. (RA

    Economy and Environmental Problems in the Mexican Coastal States

    Get PDF
    A canonical correspondence analysis (CCA) for environmental and economic variables was performed for 17 Mexican coastal states. The ordination method allowed us to identify three groups, namely hydroelectric energy generation (I), pollution (II) and harbours (III), which were associated to different human activities. Furthermore, CCA is efficient to help us generate hypotheses for future research. It is therefore advised that CCA should be used for routine analyses into economics.Coastal States of Mexico, Canonical Correspondence Analysis, Diversity Index, Economic Development, Environmental Variables.

    Universal temporal features of rankings in competitive sports and games

    Get PDF
    Many complex phenomena, from the selection of traits in biological systems to hierarchy formation in social and economic entities, show signs of competition and heterogeneous performance in the temporal evolution of their components, which may eventually lead to stratified structures such as the wealth distribution worldwide. However, it is still unclear whether the road to hierarchical complexity is determined by the particularities of each phenomena, or if there are universal mechanisms of stratification common to many systems. Human sports and games, with their (varied but simplified) rules of competition and measures of performance, serve as an ideal test bed to look for universal features of hierarchy formation. With this goal in mind, we analyse here the behaviour of players and team rankings over time for several sports and games. Even though, for a given time, the distribution of performance ranks varies across activities, we find statistical regularities in the dynamics of ranks. Specifically the rank diversity, a measure of the number of elements occupying a given rank over a length of time, has the same functional form in sports and games as in languages, another system where competition is determined by the use or disuse of grammatical structures. Our results support the notion that hierarchical phenomena may be driven by the same underlying mechanisms of rank formation, regardless of the nature of their components. Moreover, such regularities can in principle be used to predict lifetimes of rank occupancy, thus increasing our ability to forecast stratification in the presence of competition

    El cumplimiento del contrato psicológico y su relación con la cultura organizacional para nuevos y veteranos: un análisis multigrupo

    Get PDF
    Se presenta un estudio relativo a los cambios en los contratos psicológicos construidos por los miembros recién llegados en el Ejército español. Dos muestras de soldados profesionales (de reciente incorporación N1= 222 y N2= 143) y veteranos (N= 386) completaron cuestionarios. Primeramente, las respuestas fueron comparadas mostrando que los contratos psicológicos de los recién llegados cambian durante la socialización organizacional y que tales cambios se producen en general las normas de los soldados experimentados. Más aún, los resultados del análisis de ecuaciones estructurales sugieren que la cultura organizacional predice el cumplimiento del contrato psicológico. Las implicaciones de las relaciones entre la cultura organizacional y el contrato psicológico se discuten.A study into changes in the psychological contracts held by newcomers into the Spanish Army is reported. Two samples of professional soldiers (newcomers N1= 222 and N2= 143) and veterans (N= 386) completed questionnaire measures. First, responses were compared showing that newcomers’ psychological contracts change during organizational socialization and these changes were generally toward the insider norms of experienced soldiers. Moreover, results of structural equation modelling suggested that organizational culture predicts psychological contract fulfillment. The implications of the relationships between organizational culture and psychological contract are discussed
    • …
    corecore